//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
//
// (C) Copyright 2006 Marvell International Ltd.
// All Rights Reserved
//

//------------------------------------------------------------------------------
//
//  Header: imm_api.h
//
//
//  IMM user mode function calls that simplify calls into the IMM
//  stream driver.
//  
//  
//------------------------------------------------------------------------------
#ifndef _IMM_API_H_
#define _IMM_API_H_

#if __cplusplus
extern "C" {
#endif


	HANDLE			IMM_CreateFile_Api(void);
	XLLP_BOOL_T		IMM_DeviceIoControl_Api(HANDLE HandleDllApi);
	XLLP_BOOL_T		IMM_CloseHandle_Api(HANDLE HandleDllApi);

	// 

	void *imm_malloc_ce(size_t size, XLLP_UINT32_T flags, XLLP_UINT32_T immid);
	XLLP_INT32_T imm_free_ce(void *address, XLLP_UINT32_T immid);
	XLLP_INT32_T imm_free_immid_ce(XLLP_UINT32_T immid);
	XLLP_UINT32_T imm_get_physical_ce(void *v);
	XLLP_INT32_T imm_l2_cache_lock_ce(void *start, XLLP_UINT32_T size, XLLP_UINT32_T flags);
	XLLP_INT32_T imm_l2_cache_unlock_ce(void *start, XLLP_UINT32_T size, XLLP_UINT32_T flags);
	XLLP_INT32_T imm_set_memattr_ce(void *start, XLLP_UINT32_T size, XLLP_UINT32_T flags);
	void imm_error_ce(XLLP_INT8_T *b);


	


#if __cplusplus
}
#endif


#endif // _IMM_API_H_

